#ifndef FLEET_H_
#define FLEET_H_
#include <list>
using namespace std;
#include "Boat.h"

class Fleet : public Boat {
public:
	Fleet(const string&);
	virtual ~Fleet();
	
	virtual bool fireToBoat(const Point<int>&, Arena*);
	virtual bool isDestroyed();
	virtual void write(Arena*) throw (OutOfBound, OverlapBoat, TooNearBoat);

	void add(Boat*);
	
	int numberActiveBoat() const;
	int numberActiveCorvette() const;
	int numberActiveCruiser() const;
	int numberActiveAircraftCarrier() const;
	int numberActiveSubmarine() const;
	int numberActiveDestroyer() const;
	
	int numberBoat() const;
	int numberCorvette() const;
	int numberCruiser() const;
	int numberAircraftCarrier() const;
	int numberSubmarine() const;
	int numberDestroyer() const;
private:
	list<Boat*> ships;
};

#endif
